﻿using System;
using System.Collections.Generic;
using System.Linq;

namespace CRM.Database.Model
{
    public class CopyHoldersCollection : AbstractCollection
    {
        public List<CopyHolder> CopyHoldersList
        {
            get
            {
                var result = new List<CopyHolder>();

                var copyholder = new CopyHolder {Id = 0, Name = "У клиента"};
                result.Add(copyholder);
                var col = new UsersCollection();
                foreach (Users item in col.Managers)
                {
                    var copyHolder = new CopyHolder {Id = item.IdUser, Name = item.LocalizedFullName};
                    result.Add(copyHolder);
                }
                return result;
            }
        }

        #region Overrides of AbstractCollection

        /// <summary>
        /// Получение списка элементов
        /// </summary>
        /// <returns>Список элементов</returns>
        public override List<object> GetList()
        {
            return new List<object>(CopyHoldersList);
        }

        /// <summary>
        /// Получение типа текущего элемента
        /// </summary>
        /// <returns></returns>
        protected override Type GetItemType()
        {
            return typeof (CopyHolder);
        }

        /// <summary>
        /// Получение статического списка для хранения объектов
        /// </summary>
        /// <returns></returns>
        public override object GetStaticCollection()
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// Получение элемента из коллекции по идентификатору
        /// </summary>
        /// <param name="itemId">Идентификатор</param>
        /// <returns>Элемент</returns>
        public override object GetItemById(int itemId)
        {
            return CopyHoldersList.FirstOrDefault(c => c.Id == itemId);
        }

        /// <summary>
        /// Обнуление статической коллекции
        /// </summary>
        protected override void SetStaticListToNULL()
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}